import cv2
from PyQt6.QtGui import QImage, QPixmap
from PyQt6.QtCore import Qt
import numpy as np


def convert_cv2_to_qimage(cv2_img):
    # OpenCV 使用 BGR 格式，需要转换为 RGB
    rgb_image = cv2.cvtColor(cv2_img, cv2.COLOR_BGR2RGB)

    # 获取图像尺寸
    h, w, ch = rgb_image.shape

    # 创建 QImage 对象
    qimage = QImage(rgb_image.data, w, h, ch * w, QImage.Format.Format_RGB888)

    return QPixmap.fromImage(qimage)



if __name__ == '__main__':

    # 使用 OpenCV 读取图像
    cv2_img = cv2.imread("example.jpg")

    # 转换为 QImage
    qimage = convert_cv2_to_qimage(cv2_img)

    # 如果你需要将 QImage 转换为 QPixmap（例如，用于 QLabel 的显示），你可以这样做：
    qpixmap = QPixmap.fromImage(qimage)
